// GetUtils 是getx为我们提供一些常用的工具类库，包括值是否为空、是否是数字、
// 是否是视频、图片、音频、PPT、Word、
// APK、邮箱、手机号码、日期、MD5、SHA1等等。


import 'package:flutter/material.dart';
import 'package:get/get.dart';

// ignore: must_be_immutable, use_key_in_widget_constructors
class UtilsGetX extends StatelessWidget {
  String name;
  UtilsGetX({Key? key, required this.name}) : super(key: key);
  var textFieldController = TextEditingController();
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(name),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            Padding(
              padding: const EdgeInsets.all(20),
              child: TextField(
                controller: textFieldController,
              ),
            ),
            const SizedBox(
              height: 10,
            ),
            Padding(
              padding: const EdgeInsets.all(10),
              child: ElevatedButton(
                child: const Text("判断是否是邮箱"),
                onPressed: () async {
                  if (GetUtils.isEmail(textFieldController.text)) {
                    Get.snackbar("正确", "恭喜你, 完全正确",
                        backgroundColor: Colors.greenAccent);
                  } else {
                    Get.snackbar("邮箱错误", "请输入正确的邮箱",
                        backgroundColor: Colors.pink);
                  }
                },
              ),
            ),
            Padding(
              padding: const EdgeInsets.all(10),
              child: ElevatedButton(
                child: const Text("判断是否是手机号"),
                onPressed: () async {
                  if (GetUtils.isPhoneNumber(textFieldController.text)) {
                    Get.snackbar("正确", "恭喜你, 完全正确",
                        backgroundColor: Colors.greenAccent);
                  } else {
                    Get.snackbar("手机号错误", "请输入正确的手机号",
                        backgroundColor: Colors.pink);
                  }
                },
              ),
            ),
            Padding(
              padding: const EdgeInsets.all(10),
              child: ElevatedButton(
                child: const Text("判断是否是IPv4"),
                onPressed: () async {
                  if (GetUtils.isIPv4(textFieldController.text)) {
                    Get.snackbar("正确", "恭喜你, 完全正确",
                        backgroundColor: Colors.greenAccent);
                  } else {
                    Get.snackbar("地址错误", "请输入正确的IPv4地址",
                        backgroundColor: Colors.pink);
                  }
                },
              ),
            ),
            Padding(
              padding: const EdgeInsets.all(10),
              child: ElevatedButton(
                child: const Text("判断是否是数字"),
                onPressed: () async {
                  if (GetUtils.isNum(textFieldController.text)) {
                    Get.snackbar("正确", "恭喜你, 完全正确",
                        backgroundColor: Colors.greenAccent);
                  } else {
                    Get.snackbar("错误", "请输入正确的数字",
                        backgroundColor: Colors.pink);
                  }
                },
              ),
            ),
          ],
        ),
      ),
    );
  }
}
